Skip to content

Studio P0: preserve SV/PTP milestone; exact 4I+4V START snapshot and polished operator layout - #240

Closed
masarray wants to merge 15 commits into
feature/studio-matched-ptp-sv-auto-20261017from
fix/studio-operator-layout-setpoint-20261018
Closed

masarray wants to merge 15 commits into
feature/studio-matched-ptp-sv-auto-20261017from
fix/studio-operator-layout-setpoint-20261018

Conversation

@masarray

Copy link
Copy Markdown
Owner

Operator screenshot 2026-10-17 22:14: PTP SOURCE + AUTO local synchronization with continuous smpCnt, SV packet capture differs from previously displayed table. This UI-only PR stacked on phase-sync-qualified M3 baseline does not edit any firmware or IEC 61850 core files.

  • Correct start data authority: every SMV START sends startScenarioSnapshot() of the current full 4I+4V table, regardless of prior pendingApply state. Eliminates accidental reuse of stale device values after stopped/restart. Existing live row editing remains unchanged; evidence of actual board acceptance still needs wire capture.
  • Full-width Voltage and Current matrices stacked vertically and stretch through the injection panel, rather than leaving a large blank lower space.
  • SMV Injector branding enlarged icon 28→40px and icon 15→26px, label 11→15px, brand allocation increased.
  • Ribbon icons/captions centered in both axes.
  • Neutral button hover has light background and dark text; common checkbox has identical 18px indicator geometry hovered/nonhovered.
  • Startup default: operator asked PTP SOURCE ON, AUTO, Phasor ON and Wave ON. PTP SOURCE now queued once after verified device becomes ready, bounded to 36 seconds, explicit OFF cancels the in-session intent. It does not auto-start SV output or fake a PTP lock.
  • Structural regression guards critical behavior.

SMV–PTP baseline frozen: no changes to embedded/, include/ariec61850/time_sync/ or packet encoding/phase logic, and the next packaged firmware must be exact-commit matched, servo+MAC evidence enabled, mirror OFF. CI Qt, Windows lifecycle, native preview, protocol tests and firmware builds must pass before merge.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-18T01:20:56.443613Z 9a3ea46 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9a3ea46efb

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread apps/arstack_studio/qml/Main.qml Outdated
}

RowLayout {
ColumnLayout {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Update the geometry check for vertically stacked matrices

When the --check-operator-ui acceptance runs, the two full-width matrices now have approximately the same left and right edges, but checkOperatorViewport() in apps/arstack_studio/src/main.cpp:85-88 still requires the voltage matrix's right edge to precede the current matrix's left edge. Thus every tested viewport reports a panel-order violation and exits with code 21; update that native contract to validate vertical voltage-before-current ordering along with this layout change.

AGENTS.md reference: AGENTS.md:L249-L257

Useful? React with 👍 / 👎.

Comment on lines +287 to +288
const accepted = smartSession.requestStartWithScenario(
controller.startScenarioSnapshot())

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Restore the workspace contract's START assertion

The Qt CI job directly runs check_operator_workspace.py, whose existing assertion searches for the contiguous text requestStartWithScenario(controller.startScenarioSnapshot()); splitting this call across these lines makes that test fail with “reconnect must not auto-transmit, but one-click Start must stage a bounded scenario.” Keep the call contiguous or update the older assertion to recognize the multiline form so the required regression gate passes.

AGENTS.md reference: AGENTS.md:L249-L257

Useful? React with 👍 / 👎.

tone === "success" ? "#d6f4e6" :
tone === "danger" ? "#ffdce0" :
tone === "accent" ? "#dcebff" : theme.textSoft
tone === "accent" ? "#dcebff" : hovered ? "#142334" : theme.textSoft

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Use dark text while a neutral button is pressed

When a focused neutral button is activated with Space or Enter while the pointer is elsewhere, down selects the new light #d6e3f1 fill but hovered remains false, so this expression retains the light theme.textSoft caption and makes it nearly unreadable. Treat down like hovered when selecting the dark caption color.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Release cleanup · 2026-10-23 — CLOSED AS SUPERSEDED UI DESIGN (NOT MERGED).

Original branch head: c86bb64e24def5138caa234cc2eb7ee31c41d732 (retained; no branch deletion). This source branch is diverged, not an ancestor of #286. Closure is an explicit feature-level supersession, NOT a claim that its git diff was merged or that all cosmetic patch lines are byte-equivalent.

At canonical #286 head 042df0d40ddd3f061ebeebc81c662c585827e346: WorkflowBar.qml::requestStart() always takes controller.startScenarioSnapshot() and calls smartSession.requestStartWithScenario(scenario), with no bare START path; Main.qml has vertically stacked 4I+4V matrices, one-shot verified-board PTP SOURCE default and explicit OFF cancellation. apps/arstack_studio/tests/check_operator_workspace.py guards snapshot/start, vertical layout and PTP intent. Newer verified transaction path requires firmware commit/readback rather than treating an old serial FIFO as acceptance.

The multiple competing 2026-10-17 UI implementations cannot be merged into current Studio without overwriting the latest operator layout and the other active worker's automatic Live-edit/Enter/focus-out fix. Preserve the unique historical design and regression rationale here; #286 owns the current premium UI and exact-build release gate. Desktop 100/150/175% DPI visual acceptance and physical GUI→SV angles/phase verification remain pending, not marked PASS. In particular #239 stays OPEN because its RUNNING three-phase toggle changes actual channel values contract differs from the current preference-only switch and must be independently dispositioned.

No changes to main, no merge, no deleted branch, no Studio QML edits in this cleanup.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant